"""
    @author yu_chen
    @date  
    @todo 
"""
import os

from comments.CloudMusicComments import GetComments
# 进程池
from multiprocessing import Pool


def run(process_index, song_list_id_names):
    """
    :param process_index: 进程号
    :return:
    """
    # 给出歌单ID即可
    for index in range(50):
        song_list_id_name = song_list_id_names[process_index + index * 7]
        song_list_id = song_list_id_name.split(',', 1)[0]
        song_list_name = song_list_id_name.split(',', 1)[1].replace('\n', '')
        # print(song_list_id + "----" + song_list_id_name)
        # 列出文件列表
        file_list = os.listdir('../txt')
        if song_list_name not in file_list:
            singer_url = 'https://music.163.com/playlist?id=' + song_list_id  # 记得要去掉#号，太那啥了
            spider = GetComments()
            spider.current_songs_list_name = song_list_name
            spider.get_songs_id(singer_url)


if __name__ == '__main__':
    # 将文件内容全部读取入数组中
    with open('../resource/all_songs_list_ids.txt', 'r') as f:
        song_list_id_names = f.readlines()
        f.close()
    # 创建进程池
    # 如果没有参数  默认大小为自己电脑的CPU核心数
    # 表示可以同时执行的进程数量
    pp = Pool(7)
    for i in range(7):
        # 创建进程,放入进程池统一管理
        pp.apply_async(run, args=(i, song_list_id_names))
        # 在调用join之前必须先关掉进程池
    # 进程池一旦关闭  就不能再添加新的进程了
    pp.close()
    # 进程池对象调用join,会等待进程池中所有的子进程结束之后再结束父进程
    pp.join()
    print("父进程结束...")
